There has been an explosive growth in the range of services which can be accessed using mobile telephony devices, such as mobile telephones and PDAs.
As the range of services grows, different standards and protocols are suitable for different classes of service. For example, a mobile telephone may be used to operate real-time services, web services and rich media services.
Real-time services typically implement well established telephony functions, such as call divert, messaging, call forwarding functions and ring back functions (to name a few). These real-time services are characterized by the fact that dynamic status information (such as whether or not a telephone is engaged at a particular point in time) dictates the functions to be implemented. These real-time services control the mobile connections in real time and are therefore synchronous in nature. A particular set of protocols and standards is appropriate for implementing these functions, for example signaling system #7 (SS7) and SIP interfaces which can be controlled from a JAIN SLEE type environment. The processor for implementing the functions will typically support state-based processing.
Web services typically implement more adaptive functions and can use a wide range of data resources from third parties. For example, web services can include banking services, shopping, notifications (such as sports and traffic news) and software download functions. There are two types of web services. Well-known operations on the internet are often called web services, these are content oriented operations. There is also emerging a more formalized service-oriented form; these web services are self-contained, modular business components that have open, Internet-oriented, standards-based interfaces. The standards behind web services were created out of the industry's need for standard and open protocols to link businesses together. With the emergence of more formalized web services, customers, suppliers, and trading partners can communicate independently of hardware, operating system, or programming environment. XML-based standards such as SOAP, UDDI, and WSDL enable web services to be easily published, located, and invoked over open Internet protocols like HTTP. Web services are asynchronous and are delivered on a best effort basis. Web services standards have been taken from a number of standards bodies. The emerging, more formalized, web services also need the ability to be discoverable at runtime and during development.
Standards for rich media services are currently being formulated, for example for high speed real time applications, such as processing of live image data, such as video streams. Implementation is typically with proprietary standards. These services will require the use of further protocols, standards and processing methods which are now emerging, for example vector oriented processing techniques.
It can be seen from the above that the range of different services and service types suitable for implementation using mobile telephony gives rise to many different environments for the creation of services and applications. Each of these environments requires programmers with different skills and software tools, and a highly distributed, non-homogenous environment results.
The access for users to the different services hosted by different service providers also gives rise to a complicated user access environment, as access to different services will be based on different access policies, typically based on the identity of the user. Individual users can have many different identities (such as passwords, usernames). One solution is to use a federated identity scheme, in which different service providers accept each others' authentication of a user, so that a single sign on (SSO) operation can be carried out by the user to enable the user to browse between different services of different service providers. Single sign on schemes are known for implementation typically in a web container. There are also many different types of application programming interface, for example CORBA based, Java based and .NET based.